package com.znsb.msfq;

import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;

import com.baidu.mobstat.StatService;
import com.znsb.msfq.utils.CacheActivityUtils;

import butterknife.ButterKnife;

/**
 * 名称：基础AppCompatActivity类
 * 创建时间：2016/10/20.
 * 作者：杨广
 * 手机号：13330359437
 * 说明：
 */

public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {

    private final static String TAG = "[BaseActivity.class]";
    protected Activity activity;
    private View view;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        activity = this;
        super.onCreate(savedInstanceState);
        if (!CacheActivityUtils.activityList.contains(this)) {
            CacheActivityUtils.addActivity(this);
        }
        view = LayoutInflater.from(activity).inflate(getlayoutView(), null);
        setContentView(view);
        ButterKnife.bind(this);
        initView(view);
        initData();
    }

    protected abstract int getlayoutView();

    protected abstract void initView(View view);

    protected abstract void initData();

    protected abstract void clickListener(View view);

    @Override
    public void onClick(View view) {
        clickListener(view);
    }


    @Override
    protected void onResume() {
        super.onResume();

        /**
         * 页面起始（每个Activity中都需要添加，如果有继承的父Activity中已经添加了该调用，那么子Activity中务必不能添加）
         * 不能与StatService.onPageStart一级onPageEnd函数交叉使用
         */
        StatService.onResume(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        /**
         * 页面结束（每个Activity中都需要添加，如果有继承的父Activity中已经添加了该调用，那么子Activity中务必不能添加）
         * 不能与StatService.onPageStart一级onPageEnd函数交叉使用
         */
        StatService.onPause(this);
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ButterKnife.unbind(this);//解除绑定，官方文档只对fragment做了解绑
    }

}
